1100
Is it is possible to exclude the non-working days when displaying the histogram using the exBarEffort for exHistOverAllocation type

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Tasks');
	with Chart do
	begin
		LevelCount := 2;
		PaneWidth[False] := 40;
		FirstVisibleDate := '6/20/2005';
		HistogramVisible := True;
		HistogramHeight := 64;
		HistogramView := EXG2ANTTLib_TLB.exHistogramAllItems;
		with Bars.Item['Split'] do
		begin
			Pattern := EXG2ANTTLib_TLB.exPatternBDiagonal;
			Shape := EXG2ANTTLib_TLB.exShapeThinUp;
			Color := $800000;
		end;
		with Bars.Add('Task:Split') do
		begin
			Color := $800000;
			Shortcut := 'WorkingTask';
			Pattern := EXG2ANTTLib_TLB.exPatternBDiagonal;
			HistogramPattern := EXG2ANTTLib_TLB.exPatternBDiagonal;
			HistogramType := EXG2ANTTLib_TLB.exHistOverAllocation;
		end;
		with Bars.Item['Task'] do
		begin
			Color := $ff0000;
			Pattern := EXG2ANTTLib_TLB.exPatternFDiagonal;
			HistogramType := EXG2ANTTLib_TLB.exHistOverAllocation;
			HistogramPattern := EXG2ANTTLib_TLB.exPatternFDiagonal;
		end;
	end;
	with Items do
	begin
		h := AddItem('True');
		AddBar(h,'WorkingTask','6/23/2005','6/29/2005',Null,Null);
		ItemBar[h,'',EXG2ANTTLib_TLB.exBarEffort] := OleVariant(4);
		ItemBar[h,'',EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True);
		h := AddItem('False');
		AddBar(h,'Task','6/23/2005','6/29/2005',Null,Null);
		ItemBar[h,'',EXG2ANTTLib_TLB.exBarEffort] := OleVariant(4);
		ItemBar[h,'',EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(False);
	end;
	EndUpdate();
end
1099
I display numbers in my chart, but the AddBar requires a date how can I add a bar
with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Tasks');
	with Chart do
	begin
		PaneWidth[False] := 0;
		NonworkingDays := 0;
		FirstVisibleDate := OleVariant(0);
		ToolTip := '';
		with Level[0] do
		begin
			Label := '<%i%>';
			ToolTip := '';
		end;
		UnitWidth := 24;
	end;
	with Items do
	begin
		AddBar(AddItem('Task 1'),'Task',OleVariant(2),OleVariant(4),Null,Null);
		AddBar(AddItem('Task 2'),'Task',OleVariant(6),OleVariant(10),Null,Null);
	end;
	EndUpdate();
end
1098
I display numbers in the chart's header but do not want to get displayed negative numbers. How can i do that
// DateChange event - Occurs when the first visible date is changed.
procedure TForm1.G2antt1DateChange(ASender: TObject; );
begin
	with G2antt1 do
	begin
		Chart.FirstVisibleDate := OleVariant(0);
		ScrollPartEnable[EXG2ANTTLib_TLB.exHChartScroll,EXG2ANTTLib_TLB.exLeftBPart] := False;
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	with Chart do
	begin
		PaneWidth[False] := 0;
		NonworkingDays := 0;
		FirstVisibleDate := OleVariant(0);
		ToolTip := '';
		with Level[0] do
		begin
			Label := '<%i%>';
			ToolTip := '<%i%>';
		end;
		UnitWidth := 24;
	end;
	EndUpdate();
end
1097
How can I display numbers in the chart's header instead dates

with G2antt1 do
begin
	BeginUpdate();
	with Chart do
	begin
		PaneWidth[False] := 0;
		NonworkingDays := 0;
		FirstVisibleDate := OleVariant(0);
		ToolTip := '';
		with Level[0] do
		begin
			Label := '<%i%>';
			ToolTip := '';
		end;
		UnitWidth := 24;
	end;
	EndUpdate();
end
1096
How can I create a bar that's not sizable, or can not be resized by default similar with milestone
with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Task');
	with Chart do
	begin
		PaneWidth[False] := 0;
		FirstVisibleDate := '12/24/2000';
		LevelCount := 2;
		with Bars.Add('Custom') do
		begin
			Shape := EXG2ANTTLib_TLB.exShapeEmpty;
			StartShape := EXG2ANTTLib_TLB.exShapeIconUp1;
			EndShape := EXG2ANTTLib_TLB.exShapeIconEmpty;
		end;
	end;
	with Items do
	begin
		AddBar(AddItem(''),'Custom','1/2/2001','1/2/2001','K1','This TYPE of bar can not be resized.');
	end;
	EndUpdate();
end
1095
Is it possible to hide the non-working parts for items using the ItemNonworkingUnits, even if set the ShowNonworkingUnits, ShowNonworkingDates on False

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Task');
	with Chart do
	begin
		Bars.Add('Task:Split').Shortcut := 'Task';
		FirstVisibleDate := '12/27/2000';
		PaneWidth[False] := 64;
		LevelCount := 2;
		ShowNonworkingUnits := False;
		ShowNonworkingDates := False;
		NonworkingDaysPattern := EXG2ANTTLib_TLB.exPatternEmpty;
	end;
	with Items do
	begin
		h1 := AddItem('Task 1');
		AddBar(h1,'Task','1/2/2001','1/4/2001','K1',Null);
		h2 := AddItem('Task 2');
		ItemNonworkingUnits[h2,OleVariant(False)] := 'weekday(value) = 1';
		AddBar(h2,'Task','1/4/2001','1/6/2001','K2',Null);
		AddLink('L1',h1,'K1',h2,'K2');
		h3 := AddItem('Task 3');
		AddBar(h3,'Task','1/8/2001','1/10/2001','K3',Null);
		AddLink('L2',h2,'K2',h3,'K3');
	end;
	EndUpdate();
end
1094
Is it possible to show the non-working parts for certain items, even if I hide the default non-working part

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Task');
	with Chart do
	begin
		Bars.Add('Task:Split').Shortcut := 'Task';
		FirstVisibleDate := '12/27/2000';
		PaneWidth[False] := 64;
		LevelCount := 2;
		ShowNonworkingUnits := False;
		ShowNonworkingDates := False;
	end;
	with Items do
	begin
		h1 := AddItem('Task 1');
		AddBar(h1,'Task','1/2/2001','1/4/2001','K1',Null);
		h2 := AddItem('Task 2');
		ItemNonworkingUnits[h2,OleVariant(False)] := 'weekday(value) = 1';
		AddBar(h2,'Task','1/4/2001','1/6/2001','K2',Null);
		AddLink('L1',h1,'K1',h2,'K2');
		h3 := AddItem('Task 3');
		AddBar(h3,'Task','1/8/2001','1/10/2001','K3',Null);
		AddLink('L2',h2,'K2',h3,'K3');
	end;
	EndUpdate();
end
1093
How can I hide the non-working part of the chart
with G2antt1 do
begin
	BeginUpdate();
	with Chart do
	begin
		FirstVisibleDate := '1/1/2008';
		PaneWidth[False] := 0;
		LevelCount := 2;
		ShowNonworkingUnits := False;
		ShowNonworkingDates := False;
	end;
	EndUpdate();
end
1092
Is it possible to let users selects cells as in Excel
with G2antt1 do
begin
	BeginUpdate();
	FullRowSelect := EXG2ANTTLib_TLB.exRectSel;
	SingleSel := False;
	ReadOnly := EXG2ANTTLib_TLB.exReadOnly;
	MarkSearchColumn := False;
	ShowFocusRect := False;
	LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot;
	SelForeColor := RGB(0,0,0);
	SelBackColor := RGB(200,225,242);
	with Columns do
	begin
		Add('A');
		with (IUnknown(Add('B')) as EXG2ANTTLib_TLB.Column) do
		begin
			AllowSizing := False;
			Width := 24;
		end;
		with (IUnknown(Add('C')) as EXG2ANTTLib_TLB.Column) do
		begin
			AllowSizing := False;
			Width := 24;
			Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(1);
			PartialCheck := True;
		end;
		with (IUnknown(Add('D')) as EXG2ANTTLib_TLB.Column) do
		begin
			AllowSizing := False;
			Width := 24;
			Def[EXG2ANTTLib_TLB.exCellHasRadioButton] := OleVariant(1);
		end;
	end;
	with Items do
	begin
		h := InsertItem(Null,Null,'Group 1');
		h1 := InsertItem(h,Null,OleVariant(16));
		CellValue[OleVariant(h1),OleVariant(1)] := OleVariant(17);
		h1 := InsertItem(h,Null,OleVariant(2));
		CellValue[OleVariant(h1),OleVariant(1)] := OleVariant(11);
		h1 := InsertItem(h,Null,OleVariant(2));
		ItemBackColor[h1] := $f0f0f0;
		CellValue[OleVariant(h1),OleVariant(1)] := OleVariant(9);
		ExpandItem[h] := True;
		h := InsertItem(Null,Null,'Group 2');
		CellValueFormat[OleVariant(h),OleVariant(2)] := EXG2ANTTLib_TLB.exHTML;
		h1 := InsertItem(h,Null,OleVariant(16));
		CellValue[OleVariant(h1),OleVariant(1)] := OleVariant(9);
		h1 := InsertItem(h,Null,OleVariant(12));
		CellValue[OleVariant(h1),OleVariant(1)] := OleVariant(11);
		h1 := InsertItem(h,Null,OleVariant(2));
		CellValue[OleVariant(h1),OleVariant(1)] := OleVariant(2);
		ExpandItem[h] := True;
		SelectItem[h] := True;
	end;
	EndUpdate();
end
1091
How can I hide a date from the chart view
with G2antt1 do
begin
	BeginUpdate();
	with Chart do
	begin
		FirstVisibleDate := '1/1/2008';
		PaneWidth[False] := 0;
		LevelCount := 2;
		AllowInsideZoom := True;
		AllowResizeInsideZoom := False;
		InsideZoomOnDblClick := False;
		with InsideZooms do
		begin
			SplitBaseLevel := False;
			DefaultWidth := 0;
			Add('1/4/2008');
			Add('1/5/2008');
			Add('1/6/2008');
		end;
		SelectLevel := 1;
		SelectDate['1/5/2008'] := True;
	end;
	EndUpdate();
end
1090
Can the SchedulePDM displays and edit the working units for my bars

// BarResizing event - Occurs when a bar is moving or resizing.
procedure TForm1.G2antt1BarResizing(ASender: TObject; Item : HITEM;Key : OleVariant);
begin
	with G2antt1 do
	begin
		Items.SchedulePDM(Item,OleVariant(Key));
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	Items.AllowCellValueToItemBar := True;
	Columns.Add('Task');
	with (IUnknown(Columns.Add('Working')) as EXG2ANTTLib_TLB.Column) do
	begin
		Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(258);
		Editor.EditType := EXG2ANTTLib_TLB.SpinType;
	end;
	with Chart do
	begin
		Bars.Add('Task:Split').Shortcut := 'Task';
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 96;
		AllowLinkBars := False;
		AllowCreateBar := EXG2ANTTLib_TLB.exNoCreateBar;
	end;
	with Items do
	begin
		h1 := AddItem('Task 1');
		AddBar(h1,'Task','1/2/2001','1/4/2001','',Null);
		h2 := AddItem('Task 2');
		AddBar(h2,'Task','1/2/2001','1/4/2001','',Null);
		AddLink('L1',h1,'',h2,'');
		h3 := AddItem('Task 3');
		AddBar(h3,'Task','1/2/2001','1/6/2001','',Null);
		AddLink('L2',h2,'',h3,'');
		Link['L2',EXG2ANTTLib_TLB.exLinkText] := 'FF';
		Link['L2',EXG2ANTTLib_TLB.exLinkStartPos] := OleVariant(2);
		Link['L2',EXG2ANTTLib_TLB.exLinkEndPos] := OleVariant(2);
		h4 := AddItem('Task 4');
		AddBar(h4,'Task','1/2/2001','1/4/2001','',Null);
		AddLink('L3',h4,'',h3,'');
		ItemBar[0,'<*>',EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True);
		SchedulePDM(FirstVisibleItem,'');
	end;
	EndUpdate();
end
1089
Can the SchedulePDM displays the working units for my bars
// BarResizing event - Occurs when a bar is moving or resizing.
procedure TForm1.G2antt1BarResizing(ASender: TObject; Item : HITEM;Key : OleVariant);
begin
	with G2antt1 do
	begin
		Items.SchedulePDM(Item,OleVariant(Key));
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	Items.AllowCellValueToItemBar := True;
	Columns.Add('Task');
	(IUnknown(Columns.Add('Working')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(258);
	with Chart do
	begin
		Bars.Add('Task:Split').Shortcut := 'Task';
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 96;
		AllowLinkBars := False;
		AllowCreateBar := EXG2ANTTLib_TLB.exNoCreateBar;
	end;
	with Items do
	begin
		h1 := AddItem('Task 1');
		AddBar(h1,'Task','1/2/2001','1/4/2001','',Null);
		h2 := AddItem('Task 2');
		AddBar(h2,'Task','1/2/2001','1/4/2001','',Null);
		AddLink('L1',h1,'',h2,'');
		h3 := AddItem('Task 3');
		AddBar(h3,'Task','1/2/2001','1/6/2001','',Null);
		AddLink('L2',h2,'',h3,'');
		Link['L2',EXG2ANTTLib_TLB.exLinkText] := 'FF';
		Link['L2',EXG2ANTTLib_TLB.exLinkStartPos] := OleVariant(2);
		Link['L2',EXG2ANTTLib_TLB.exLinkEndPos] := OleVariant(2);
		h4 := AddItem('Task 4');
		AddBar(h4,'Task','1/2/2001','1/4/2001','',Null);
		AddLink('L3',h4,'',h3,'');
		ItemBar[0,'<*>',EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True);
		SchedulePDM(FirstVisibleItem,'');
	end;
	EndUpdate();
end
1088
Can the SchedulePDM keeps the working units for my bars
// BarResizing event - Occurs when a bar is moving or resizing.
procedure TForm1.G2antt1BarResizing(ASender: TObject; Item : HITEM;Key : OleVariant);
begin
	with G2antt1 do
	begin
		Items.SchedulePDM(Item,OleVariant(Key));
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Task');
	with Chart do
	begin
		Bars.Add('Task:Split').Shortcut := 'Task';
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 48;
		AllowLinkBars := False;
		AllowCreateBar := EXG2ANTTLib_TLB.exNoCreateBar;
	end;
	with Items do
	begin
		h1 := AddItem('Task 1');
		AddBar(h1,'Task','1/2/2001','1/4/2001','K1',Null);
		h2 := AddItem('Task 2');
		AddBar(h2,'Task','1/2/2001','1/4/2001','K2',Null);
		AddLink('L1',h1,'K1',h2,'K2');
		h3 := AddItem('Task 3');
		AddBar(h3,'Task','1/2/2001','1/6/2001','K3',Null);
		AddLink('L2',h2,'K2',h3,'K3');
		Link['L2',EXG2ANTTLib_TLB.exLinkText] := 'FF';
		Link['L2',EXG2ANTTLib_TLB.exLinkStartPos] := OleVariant(2);
		Link['L2',EXG2ANTTLib_TLB.exLinkEndPos] := OleVariant(2);
		h4 := AddItem('Task 4');
		AddBar(h4,'Task','1/2/2001','1/4/2001','K4',Null);
		AddLink('L3',h4,'K4',h3,'K3');
		ItemBar[0,'<*>',EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True);
		SchedulePDM(0,'K1');
	end;
	EndUpdate();
end
1087
How can I arrange automatically the bars based on their links as soon as user moves the bars
// BarResizing event - Occurs when a bar is moving or resizing.
procedure TForm1.G2antt1BarResizing(ASender: TObject; Item : HITEM;Key : OleVariant);
begin
	with G2antt1 do
	begin
		Items.SchedulePDM(Item,OleVariant(Key));
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Task');
	with Chart do
	begin
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 48;
		AllowLinkBars := False;
		AllowCreateBar := EXG2ANTTLib_TLB.exNoCreateBar;
	end;
	with Items do
	begin
		h1 := AddItem('Task 1');
		AddBar(h1,'Task','1/2/2001','1/4/2001','K1',Null);
		h2 := AddItem('Task 2');
		AddBar(h2,'Task','1/2/2001','1/4/2001','K2',Null);
		AddLink('L1',h1,'K1',h2,'K2');
		h3 := AddItem('Task 3');
		AddBar(h3,'Task','1/2/2001','1/6/2001','K3',Null);
		AddLink('L2',h2,'K2',h3,'K3');
		Link['L2',EXG2ANTTLib_TLB.exLinkText] := 'FF';
		Link['L2',EXG2ANTTLib_TLB.exLinkStartPos] := OleVariant(2);
		Link['L2',EXG2ANTTLib_TLB.exLinkEndPos] := OleVariant(2);
		h4 := AddItem('Task 4');
		AddBar(h4,'Task','1/2/2001','1/4/2001','K4',Null);
		AddLink('L3',h4,'K4',h3,'K3');
		SchedulePDM(0,'K1');
	end;
	EndUpdate();
end
1086
How can I arrange automatically the bars based on their links as soon as user moves the bars
// BarResize event - Occurs when a bar is moved or resized.
procedure TForm1.G2antt1BarResize(ASender: TObject; Item : HITEM;Key : OleVariant);
begin
	with G2antt1 do
	begin
		Items.SchedulePDM(Item,OleVariant(Key));
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Task');
	with Chart do
	begin
		FirstVisibleDate := '1/1/2001';
		PaneWidth[False] := 48;
		AllowLinkBars := False;
		AllowCreateBar := EXG2ANTTLib_TLB.exNoCreateBar;
	end;
	with Items do
	begin
		h1 := AddItem('Task 1');
		AddBar(h1,'Task','1/2/2001','1/4/2001','K1',Null);
		h2 := AddItem('Task 2');
		AddBar(h2,'Task','1/2/2001','1/4/2001','K2',Null);
		AddLink('L1',h1,'K1',h2,'K2');
		h3 := AddItem('Task 3');
		AddBar(h3,'Task','1/2/2001','1/4/2001','K3',Null);
		AddLink('L2',h2,'K2',h3,'K3');
		SchedulePDM(0,'K1');
	end;
	EndUpdate();
end
1085
I have some buttons added on the control's scroll bar, how can I can know when the button is being clicked
// ScrollButtonClick event - Occurs when the user clicks a button in the scrollbar.
procedure TForm1.G2antt1ScrollButtonClick(ASender: TObject; ScrollBar : ScrollBarEnum;ScrollPart : ScrollPartEnum);
begin
	with G2antt1 do
	begin
		OutputDebugString( ScrollBar );
		OutputDebugString( ScrollPart );
	end
end;

with G2antt1 do
begin
	ScrollPartVisible[EXG2ANTTLib_TLB.exHScroll,EXG2ANTTLib_TLB.exLeftB1Part] := True;
	ScrollPartVisible[EXG2ANTTLib_TLB.exHScroll,EXG2ANTTLib_TLB.exLeftB2Part] := True;
	ScrollPartVisible[EXG2ANTTLib_TLB.exHScroll,EXG2ANTTLib_TLB.exRightB6Part] := True;
	ScrollPartVisible[EXG2ANTTLib_TLB.exHScroll,EXG2ANTTLib_TLB.exRightB5Part] := True;
	ScrollBars := EXG2ANTTLib_TLB.exDisableNoHorizontal;
end
1084
How do I get notified once the user clicks a hyperlink created using the anchor HTML tag
// AnchorClick event - Occurs when an anchor element is clicked.
procedure TForm1.G2antt1AnchorClick(ASender: TObject; AnchorID : WideString;Options : WideString);
begin
	with G2antt1 do
	begin
		OutputDebugString( AnchorID );
		OutputDebugString( Options );
	end
end;

with G2antt1 do
begin
	(IUnknown(Columns.Add('Default')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exCellValueFormat] := OleVariant(1);
	with Items do
	begin
		AddItem('This is a link: <aex.com;1>www.exontrol.com</a>');
		AddItem('This is a link: <aex.net;2>www.exontrol.net</a>');
	end;
end
1083
Is it possible to start editing a cell when double click it
// DblClick event - Occurs when the user dblclk the left mouse button over an object.
procedure TForm1.G2antt1DblClick(ASender: TObject; Shift : Smallint;X : Integer;Y : Integer);
begin
	with G2antt1 do
	begin
		Edit(Null);
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	AutoEdit := False;
	MarkSearchColumn := False;
	(IUnknown(Columns.Add('Edit1')) as EXG2ANTTLib_TLB.Column).Editor.EditType := EXG2ANTTLib_TLB.EditType;
	(IUnknown(Columns.Add('Edit2')) as EXG2ANTTLib_TLB.Column).Editor.EditType := EXG2ANTTLib_TLB.EditType;
	with Items do
	begin
		CellValue[OleVariant(AddItem(OleVariant(1))),OleVariant(1)] := OleVariant(2);
	end;
	with Items do
	begin
		CellValue[OleVariant(AddItem(OleVariant(3))),OleVariant(1)] := OleVariant(4);
	end;
	EndUpdate();
end
1082
Is it possible to disable standard single-click behavior for this column, so I manually could call Edit() when needed
// DblClick event - Occurs when the user dblclk the left mouse button over an object.
procedure TForm1.G2antt1DblClick(ASender: TObject; Shift : Smallint;X : Integer;Y : Integer);
begin
	with G2antt1 do
	begin
		Edit(Null);
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	AutoEdit := False;
	MarkSearchColumn := False;
	(IUnknown(Columns.Add('Edit1')) as EXG2ANTTLib_TLB.Column).Editor.EditType := EXG2ANTTLib_TLB.EditType;
	(IUnknown(Columns.Add('Edit2')) as EXG2ANTTLib_TLB.Column).Editor.EditType := EXG2ANTTLib_TLB.EditType;
	with Items do
	begin
		CellValue[OleVariant(AddItem(OleVariant(1))),OleVariant(1)] := OleVariant(2);
	end;
	with Items do
	begin
		CellValue[OleVariant(AddItem(OleVariant(3))),OleVariant(1)] := OleVariant(4);
	end;
	EndUpdate();
end
1081
How can I get or restore the old or previously value for the cell being changed
// Change event - Occurs when the user changes the cell's content.
procedure TForm1.G2antt1Change(ASender: TObject; Item : HITEM;ColIndex : Integer;var NewValue : OleVariant);
begin
	with G2antt1 do
	begin
		OutputDebugString( 'Old-Value:' );
		OutputDebugString( Items.CellValue[OleVariant(Item),OleVariant(ColIndex)] );
		OutputDebugString( 'New-Value:' );
		OutputDebugString( NewValue );
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	MarkSearchColumn := False;
	(IUnknown(Columns.Add('Edit1')) as EXG2ANTTLib_TLB.Column).Editor.EditType := EXG2ANTTLib_TLB.EditType;
	(IUnknown(Columns.Add('Edit2')) as EXG2ANTTLib_TLB.Column).Editor.EditType := EXG2ANTTLib_TLB.EditType;
	with Items do
	begin
		CellValue[OleVariant(AddItem(OleVariant(1))),OleVariant(1)] := OleVariant(2);
	end;
	with Items do
	begin
		CellValue[OleVariant(AddItem(OleVariant(3))),OleVariant(1)] := OleVariant(4);
	end;
	EndUpdate();
end
1080
How can I display the number of items being found after filtering
// FilterChange event - Occurs when the filter was changed.
procedure TForm1.G2antt1FilterChange(ASender: TObject; );
begin
	with G2antt1 do
	begin
		FilterBarCaption := Items.VisibleCount;
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	Chart.PaneWidth[True] := 0;
	ColumnAutoResize := True;
	ContinueColumnScroll := False;
	FocusColumnIndex := 1;
	MarkSearchColumn := False;
	SearchColumnIndex := 1;
	FilterBarPromptVisible := True;
	FilterBarPromptType := EXG2ANTTLib_TLB.exFilterPromptContainsAll;
	FilterBarPromptPattern := 'london';
	with Columns do
	begin
		(IUnknown(Add('Name')) as EXG2ANTTLib_TLB.Column).Width := 96;
		(IUnknown(Add('Title')) as EXG2ANTTLib_TLB.Column).Width := 96;
		Add('City');
	end;
	with Items do
	begin
		h0 := AddItem('Nancy Davolio');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Andrew Fuller');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Vice President, Sales';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Tacoma';
		SelectItem[h0] := True;
		h0 := AddItem('Janet Leverling');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Kirkland';
		h0 := AddItem('Margaret Peacock');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Redmond';
		h0 := AddItem('Steven Buchanan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Manager';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Michael Suyama');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Robert King');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Laura Callahan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Inside Sales Coordinator';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Anne Dodsworth');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
	end;
	EndUpdate();
end
1079
How can I highligth the item from the cursor as it moves
// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
	with G2antt1 do
	begin
		BeginUpdate();
		h := ItemFromPoint[-1,-1,c,hit];
		with Items do
		begin
			ClearItemBackColor(G2antt1.Background[EXG2ANTTLib_TLB.BackgroundPartEnum($200 Or Integer(EXG2ANTTLib_TLB.exHSRight) Or Integer(EXG2ANTTLib_TLB.exListOLEDropPosition))]);
			ItemBackColor[h] := $f0faf0;
		end;
		Background[EXG2ANTTLib_TLB.BackgroundPartEnum($200 Or Integer(EXG2ANTTLib_TLB.exHSRight) Or Integer(EXG2ANTTLib_TLB.exListOLEDropPosition))] := h;
		EndUpdate();
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot;
	DrawGridLines := EXG2ANTTLib_TLB.exHLines;
	SelBackColor := RGB(240,250,240);
	SelForeColor := RGB(0,0,0);
	ShowFocusRect := False;
	with Chart do
	begin
		SelBackColor := $f0faf0;
	end;
	Columns.Add('Items');
	with Items do
	begin
		h := AddItem('R1');
		InsertItem(h,Null,'Cell 1.1');
		InsertItem(h,Null,'Cell 1.2');
		ExpandItem[h] := True;
		h := AddItem('R2');
		InsertItem(h,Null,'Cell 2.1');
		InsertItem(h,Null,'Cell 2.2');
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
1078
How can I get the item from the cursor
// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
	with G2antt1 do
	begin
		h := ItemFromPoint[-1,-1,c,hit];
		OutputDebugString( 'Handle' );
		OutputDebugString( h );
		OutputDebugString( 'Index' );
		OutputDebugString( Items.ItemToIndex[h] );
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot;
	DrawGridLines := EXG2ANTTLib_TLB.exHLines;
	Columns.Add('Items');
	with Items do
	begin
		h := AddItem('R1');
		InsertItem(h,Null,'Cell 1.1');
		InsertItem(h,Null,'Cell 1.2');
		ExpandItem[h] := True;
		h := AddItem('R2');
		InsertItem(h,Null,'Cell 2.1');
		InsertItem(h,Null,'Cell 2.2');
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
1077
How can I get the column from the cursor, not only in the header
// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
	with G2antt1 do
	begin
		OutputDebugString( ColumnFromPoint[-1,0] );
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot;
	Columns.Add('P1');
	Columns.Add('P2');
	DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
	with Items do
	begin
		h := AddItem('R1');
		CellValue[OleVariant(h),OleVariant(1)] := 'R2';
		CellValue[OleVariant(InsertItem(h,Null,'Cell 1.1')),OleVariant(1)] := 'Cell 1.2';
		CellValue[OleVariant(InsertItem(h,Null,'Cell 2.1')),OleVariant(1)] := 'Cell 2.2';
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
1076
How can I get the column from the cursor
// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
	with G2antt1 do
	begin
		OutputDebugString( ColumnFromPoint[-1,-1] );
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot;
	DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
	Columns.Add('P1');
	Columns.Add('P2');
	with Items do
	begin
		h := AddItem('R1');
		CellValue[OleVariant(h),OleVariant(1)] := 'R2';
		CellValue[OleVariant(InsertItem(h,Null,'Cell 1.1')),OleVariant(1)] := 'Cell 1.2';
		CellValue[OleVariant(InsertItem(h,Null,'Cell 2.1')),OleVariant(1)] := 'Cell 2.2';
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
1075
How can I get the cell's caption from the cursor
// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
	with G2antt1 do
	begin
		h := ItemFromPoint[-1,-1,c,hit];
		OutputDebugString( Items.CellCaption[OleVariant(h),OleVariant(c)] );
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot;
	Columns.Add('Items');
	with Items do
	begin
		h := AddItem('R1');
		InsertItem(h,Null,'Cell 1.1');
		InsertItem(h,Null,'Cell 1.2');
		ExpandItem[h] := True;
		h := AddItem('R2');
		InsertItem(h,Null,'Cell 2.1');
		InsertItem(h,Null,'Cell 2.2');
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
1074
Is it possible to change the style for the vertical or horizontal grid lines, in the list area
with G2antt1 do
begin
	BeginUpdate();
	DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
	GridLineStyle := Integer(EXG2ANTTLib_TLB.exGridLinesVSolid) Or Integer(EXG2ANTTLib_TLB.exGridLinesHDot4);
	Columns.Add('C1');
	Columns.Add('C2');
	Columns.Add('C3');
	with Items do
	begin
		h := AddItem('Item 1');
		CellValue[OleVariant(h),OleVariant(1)] := 'SubItem 1.2';
		CellValue[OleVariant(h),OleVariant(2)] := 'SubItem 1.3';
		h := AddItem('Item 2');
		CellValue[OleVariant(h),OleVariant(1)] := 'SubItem 2.2';
		CellValue[OleVariant(h),OleVariant(2)] := 'SubItem 2.3';
	end;
	EndUpdate();
end
1073
How can I show the bars over the grid lines, i.e. so you cannot see the grid lines 'through' the bar

with G2antt1 do
begin
	BeginUpdate();
	DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
	GridLineColor := RGB(220,220,220);
	with Chart do
	begin
		PaneWidth[False] := 48;
		FirstVisibleDate := '1/1/2001';
		DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
		GridLineStyle := EXG2ANTTLib_TLB.exGridLinesBehind;
		LevelCount := 2;
		with Level[1] do
		begin
			DrawGridLines := True;
			GridLineColor := $dcdcdc;
		end;
		with Bars.Item['Task'] do
		begin
			Pattern := EXG2ANTTLib_TLB.exPatternSolid;
			Height := 14;
		end;
	end;
	Columns.Add('Column');
	with Items do
	begin
		h := AddItem('Item 1');
		AddBar(h,'Task','1/2/2001','1/5/2001','A',Null);
		AddBar(h,'Task','1/8/2001','1/15/2001','B',Null);
	end;
	EndUpdate();
end
1072
Is it possible to change the style for the vertical grid lines, in the chart area only

with G2antt1 do
begin
	BeginUpdate();
	DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
	GridLineStyle := EXG2ANTTLib_TLB.exGridLinesDash;
	with Chart do
	begin
		PaneWidth[False] := 48;
		FirstVisibleDate := '1/1/2001';
		DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
		GridLineStyle := EXG2ANTTLib_TLB.exGridLinesDash;
		LevelCount := 2;
		Level[1].DrawGridLines := True;
		with Level[0] do
		begin
			GridLineColor := $ff;
			GridLineStyle := EXG2ANTTLib_TLB.exGridLinesVSolid;
		end;
		Bars.Item['Task'].Pattern := EXG2ANTTLib_TLB.exPatternSolid;
	end;
	Columns.Add('Column');
	with Items do
	begin
		h := AddItem('Item 1');
		AddBar(h,'Task','1/2/2001','1/5/2001','A',Null);
		AddBar(h,'Task','1/8/2001','1/15/2001','B',Null);
	end;
	EndUpdate();
end
1071
Is it possible to change the style for the grid lines, for instance to be solid not dotted

with G2antt1 do
begin
	BeginUpdate();
	DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
	GridLineStyle := EXG2ANTTLib_TLB.exGridLinesSolid;
	with Chart do
	begin
		PaneWidth[False] := 48;
		FirstVisibleDate := '1/1/2001';
		DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
		GridLineStyle := EXG2ANTTLib_TLB.exGridLinesSolid;
		LevelCount := 2;
		Level[1].DrawGridLines := True;
		Bars.Item['Task'].Pattern := EXG2ANTTLib_TLB.exPatternSolid;
	end;
	Columns.Add('Column');
	with Items do
	begin
		h := AddItem('Item 1');
		AddBar(h,'Task','1/2/2001','1/5/2001','A',Null);
		AddBar(h,'Task','1/8/2001','1/15/2001','B',Null);
	end;
	EndUpdate();
end
1070
How can I show the grid lines for the chart and list area

with G2antt1 do
begin
	DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
	with Chart do
	begin
		PaneWidth[False] := 48;
		FirstVisibleDate := '1/1/2001';
		DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
		LevelCount := 2;
		Level[1].DrawGridLines := True;
		Bars.Item['Task'].Pattern := EXG2ANTTLib_TLB.exPatternSolid;
	end;
	Columns.Add('Column');
	with Items do
	begin
		h := AddItem('Item 1');
		AddBar(h,'Task','1/2/2001','1/5/2001','A',Null);
		AddBar(h,'Task','1/8/2001','1/15/2001','B',Null);
	end;
end
1069
In the level of the chart we are showing the week number of the year (1-53) (Week: ww). However the weeknumber isn't correct. In western Europe the week of 04/01/2010 till 10/01/2010 is weeknumber 1, however the g2antt says it's week 2

with G2antt1 do
begin
	with Chart do
	begin
		PaneWidth[False] := 0;
		FirstVisibleDate := '12/28/2009';
		LevelCount := 2;
		Level[0].Label := 'Week: <%ww%>/<%yyyy%>';
		FirstWeekDay := EXG2ANTTLib_TLB.exMonday;
	end;
end
1068
How can I determine the current visible date range of the gantt chart area
with G2antt1 do
begin
	Columns.Add('Task');
	with Chart do
	begin
		FirstVisibleDate := '1/1/2001';
		PaneWidth[False] := 48;
	end;
	with Items do
	begin
		AddBar(AddItem('Task 1'),'Task','1/2/2001','1/6/2001',Null,Null);
		AddBar(AddItem('Task 2'),'Task','1/3/2001','1/7/2001',Null,Null);
		AddBar(AddItem('Task 3'),'Task','1/4/2001','1/8/2001',Null,Null);
		AddBar(AddItem('Task 4'),'Task','1/6/2001','1/10/2001',Null,Null);
	end;
	OutputDebugString( Chart.StartPrintDate );
	OutputDebugString( Chart.EndPrintDate );
end
1067
How can I change the progress bar using a spin editor using values from 0 to 100

with G2antt1 do
begin
	BeginUpdate();
	Items.AllowCellValueToItemBar := True;
	with Columns do
	begin
		Add('Task');
		with (IUnknown(Add('Percent')) as EXG2ANTTLib_TLB.Column) do
		begin
			Editor.EditType := EXG2ANTTLib_TLB.SpinType;
			Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(518);
		end;
	end;
	with Chart do
	begin
		FirstVisibleDate := '1/1/2001';
		Bars.Add('Task%Progress');
	end;
	with Items do
	begin
		h := AddItem('Task 1');
		AddBar(h,'Task%Progress','1/2/2001','1/6/2001',Null,Null);
		CellValue[OleVariant(h),OleVariant(1)] := OleVariant(40);
		h := AddItem('Task 2');
		AddBar(h,'Task%Progress','1/2/2001','1/6/2001',Null,Null);
		CellValue[OleVariant(h),OleVariant(1)] := OleVariant(50);
	end;
	EndUpdate();
end
1066
Is it possible to display the histogram for selected bars only

with G2antt1 do
begin
	BeginUpdate();
	with Chart do
	begin
		LevelCount := 2;
		PaneWidth[False] := 64;
		FirstVisibleDate := '1/1/2001';
		HistogramVisible := True;
		HistogramView := EXG2ANTTLib_TLB.exHistogramSelectedBars;
		HistogramHeight := 32;
		Bars.Item['Task'].HistogramPattern := EXG2ANTTLib_TLB.exPatternBDiagonal;
	end;
	Columns.Add('Column');
	with Items do
	begin
		AddBar(AddItem('Item 1'),'Task','1/3/2001','1/5/2001',OleVariant(1),Null);
		AddBar(AddItem('Item 2'),'Task','1/4/2001','1/7/2001',OleVariant(2),Null);
		AddBar(AddItem('Item 3'),'Task','1/2/2001','1/6/2001',OleVariant(3),Null);
		ItemBar[0,OleVariant(2),EXG2ANTTLib_TLB.exBarSelected] := OleVariant(True);
		ItemBar[0,OleVariant(3),EXG2ANTTLib_TLB.exBarSelected] := OleVariant(True);
	end;
	EndUpdate();
end
1065
How can I fix a bar, so it is not selectable, moveable or resizable, fixed in other words
with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Task');
	with Chart do
	begin
		FirstVisibleDate := '1/1/2001';
		PaneWidth[False] := 48;
	end;
	with Items do
	begin
		h1 := AddItem('Task 1');
		AddBar(h1,'Task','1/2/2001','1/8/2001','K1','Unselectable');
		ItemBar[h1,'K1',EXG2ANTTLib_TLB.exBarSelectable] := OleVariant(False);
	end;
	EndUpdate();
end
1064
How can I fix a bar, so it is not moveable or resizable
with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Task');
	with Chart do
	begin
		FirstVisibleDate := '1/1/2001';
		PaneWidth[False] := 48;
	end;
	with Items do
	begin
		h1 := AddItem('Task 1');
		AddBar(h1,'Task','1/2/2001','1/4/2001','K1','Fixed');
		ItemBar[h1,'K1',EXG2ANTTLib_TLB.exBarCanResize] := OleVariant(False);
		ItemBar[h1,'K1',EXG2ANTTLib_TLB.exBarCanMove] := OleVariant(False);
	end;
	EndUpdate();
end
1063
Is is possible to fix a bar during PDM scheduling
with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Task');
	with Chart do
	begin
		FirstVisibleDate := '1/1/2001';
		PaneWidth[False] := 48;
	end;
	with Items do
	begin
		h1 := AddItem('Task 1');
		AddBar(h1,'TaskF','1/2/2001','1/4/2001','K1',Null);
		ItemBar[h1,'K1',EXG2ANTTLib_TLB.exBarCanResize] := OleVariant(False);
		ItemBar[h1,'K1',EXG2ANTTLib_TLB.exBarCanMove] := OleVariant(False);
		h2 := AddItem('Task 2');
		AddBar(h2,'Task','1/2/2001','1/4/2001','K2',Null);
		AddLink('L1',h1,'K1',h2,'K2');
		h3 := AddItem('Task 3');
		AddBar(h3,'TaskF','1/2/2001','1/4/2001','K3',Null);
		ItemBar[h3,'K3',EXG2ANTTLib_TLB.exBarCanResize] := OleVariant(False);
		ItemBar[h3,'K3',EXG2ANTTLib_TLB.exBarCanMove] := OleVariant(False);
		AddLink('L2',h2,'K2',h3,'K3');
		SchedulePDM(0,'K1');
	end;
	EndUpdate();
end
1062
How can I specify that during scheduling the link, bars should be delayed, on working part

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Task');
	with Chart do
	begin
		Bars.Add('Task:Split').Shortcut := 'Task';
		FirstVisibleDate := '1/1/2001';
		PaneWidth[False] := 48;
	end;
	with Items do
	begin
		h1 := AddItem('Task 1');
		AddBar(h1,'Task','1/1/2001','1/3/2001','K1',Null);
		ItemBar[h1,'K1',EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True);
		h2 := AddItem('Task 2');
		AddBar(h2,'Task','1/2/2001','1/5/2001','K2',Null);
		ItemBar[h2,'K2',EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True);
		AddLink('L1',h1,'K1',h2,'K2');
		Link['L1',EXG2ANTTLib_TLB.exLinkText] := 'FS';
		h3 := AddItem('Task 3');
		AddBar(h3,'Task','1/2/2001','1/6/2001','K3',Null);
		ItemBar[h3,'K3',EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True);
		AddLink('L2',h2,'K2',h3,'K3');
		Link['L2',EXG2ANTTLib_TLB.exLinkText] := 'link delays the bars<br>for <b>2</b> working days';
		Link['L2',EXG2ANTTLib_TLB.exLinkPDMWorkingDelay] := OleVariant(2);
		SchedulePDM(0,'K1');
	end;
	EndUpdate();
end
1061
How can I specify that during scheduling the link, bars should be delayed

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Task');
	with Chart do
	begin
		ShowNonworkingDates := False;
		FirstVisibleDate := '1/1/2001';
		PaneWidth[False] := 48;
	end;
	with Items do
	begin
		h1 := AddItem('Task 1');
		AddBar(h1,'Task','1/2/2001','1/4/2001','K1',Null);
		h2 := AddItem('Task 2');
		AddBar(h2,'Task','1/2/2001','1/5/2001','K2',Null);
		AddLink('L1',h1,'K1',h2,'K2');
		Link['L1',EXG2ANTTLib_TLB.exLinkText] := 'FS';
		h3 := AddItem('Task 3');
		AddBar(h3,'Task','1/2/2001','1/6/2001','K3',Null);
		AddLink('L2',h2,'K2',h3,'K3');
		Link['L2',EXG2ANTTLib_TLB.exLinkText] := '   Finish-Start<br>delayed <b>4</b> days';
		Link['L2',EXG2ANTTLib_TLB.exLinkPDMDelay] := OleVariant(4);
		SchedulePDM(0,'K1');
	end;
	EndUpdate();
end
1060
The SchedulePDM method put the bars on non-working part, how can I prevent that

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Task');
	with Chart do
	begin
		Bars.Add('Task:Split').Shortcut := 'Task';
		FirstVisibleDate := '1/1/2001';
		PaneWidth[False] := 48;
	end;
	with Items do
	begin
		h1 := AddItem('Task 1');
		AddBar(h1,'Task','1/2/2001','1/4/2001','K1',Null);
		ItemBar[h1,'K1',EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True);
		h2 := AddItem('Task 2');
		AddBar(h2,'Task','1/2/2001','1/5/2001','K2',Null);
		ItemBar[h2,'K2',EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True);
		AddLink('L1',h1,'K1',h2,'K2');
		Link['L1',EXG2ANTTLib_TLB.exLinkText] := 'FS';
		h3 := AddItem('Task 3');
		AddBar(h3,'Task','1/2/2001','1/6/2001','K3',Null);
		ItemBar[h3,'K3',EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True);
		AddLink('L2',h2,'K2',h3,'K3');
		Link['L2',EXG2ANTTLib_TLB.exLinkText] := 'FS';
		SchedulePDM(0,'K1');
	end;
	EndUpdate();
end
1059
How can I add a SF (Start-Finish) link so activities get arranged using the SchedulePDM

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Task');
	with Chart do
	begin
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 48;
	end;
	with Items do
	begin
		h1 := AddItem('Task 1');
		AddBar(h1,'Task','1/2/2001','1/4/2001','K1',Null);
		h2 := AddItem('Task 2');
		AddBar(h2,'Task','1/2/2001','1/5/2001','K2',Null);
		AddLink('L1',h1,'K1',h2,'K2');
		Link['L1',EXG2ANTTLib_TLB.exLinkText] := 'FS';
		h3 := AddItem('Task 3');
		AddBar(h3,'Task','1/2/2001','1/6/2001','K3',Null);
		AddLink('L2',h2,'K2',h3,'K3');
		Link['L2',EXG2ANTTLib_TLB.exLinkText] := 'SF';
		Link['L2',EXG2ANTTLib_TLB.exLinkStartPos] := OleVariant(0);
		Link['L2',EXG2ANTTLib_TLB.exLinkEndPos] := OleVariant(2);
		SchedulePDM(0,'K1');
	end;
	EndUpdate();
end
1058
How can I add a SS (Start-Start) link so activities get arranged using the SchedulePDM

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Task');
	with Chart do
	begin
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 48;
	end;
	with Items do
	begin
		h1 := AddItem('Task 1');
		AddBar(h1,'Task','1/2/2001','1/4/2001','K1',Null);
		h2 := AddItem('Task 2');
		AddBar(h2,'Task','1/2/2001','1/5/2001','K2',Null);
		AddLink('L1',h1,'K1',h2,'K2');
		Link['L1',EXG2ANTTLib_TLB.exLinkText] := 'FS';
		h3 := AddItem('Task 3');
		AddBar(h3,'Task','1/2/2001','1/6/2001','K3',Null);
		AddLink('L2',h2,'K2',h3,'K3');
		Link['L2',EXG2ANTTLib_TLB.exLinkText] := 'SS';
		Link['L2',EXG2ANTTLib_TLB.exLinkStartPos] := OleVariant(0);
		Link['L2',EXG2ANTTLib_TLB.exLinkEndPos] := OleVariant(0);
		SchedulePDM(0,'K1');
	end;
	EndUpdate();
end
1057
How can I add a FF (Finish-Finish) link so activities get arranged using the SchedulePDM

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Task');
	with Chart do
	begin
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 48;
	end;
	with Items do
	begin
		h1 := AddItem('Task 1');
		AddBar(h1,'Task','1/2/2001','1/4/2001','K1',Null);
		h2 := AddItem('Task 2');
		AddBar(h2,'Task','1/2/2001','1/5/2001','K2',Null);
		AddLink('L1',h1,'K1',h2,'K2');
		Link['L1',EXG2ANTTLib_TLB.exLinkText] := 'FS';
		h3 := AddItem('Task 3');
		AddBar(h3,'Task','1/2/2001','1/6/2001','K3',Null);
		AddLink('L2',h2,'K2',h3,'K3');
		Link['L2',EXG2ANTTLib_TLB.exLinkText] := 'FF';
		Link['L2',EXG2ANTTLib_TLB.exLinkStartPos] := OleVariant(2);
		Link['L2',EXG2ANTTLib_TLB.exLinkEndPos] := OleVariant(2);
		SchedulePDM(0,'K1');
	end;
	EndUpdate();
end
1056
How can I add a FS (Finish-Start) link so activities get arranged using the SchedulePDM

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Task');
	with Chart do
	begin
		FirstVisibleDate := '1/1/2001';
		PaneWidth[False] := 48;
	end;
	with Items do
	begin
		h1 := AddItem('Task 1');
		AddBar(h1,'Task','1/2/2001','1/4/2001','K1',Null);
		h2 := AddItem('Task 2');
		AddBar(h2,'Task','1/2/2001','1/5/2001','K2',Null);
		AddLink('L1',h1,'K1',h2,'K2');
		Link['L1',EXG2ANTTLib_TLB.exLinkText] := 'FS';
		h3 := AddItem('Task 3');
		AddBar(h3,'Task','1/2/2001','1/6/2001','K3',Null);
		AddLink('L2',h2,'K2',h3,'K3');
		Link['L2',EXG2ANTTLib_TLB.exLinkText] := 'FS';
		SchedulePDM(0,'K1');
	end;
	EndUpdate();
end
1055
How can I schedule activities in the project plan
with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Task');
	with Chart do
	begin
		FirstVisibleDate := '1/1/2001';
		PaneWidth[False] := 48;
	end;
	with Items do
	begin
		h1 := AddItem('Task 1');
		AddBar(h1,'Task','1/2/2001','1/4/2001','K1',Null);
		h2 := AddItem('Task 2');
		AddBar(h2,'Task','1/2/2001','1/4/2001','K2',Null);
		AddLink('L1',h1,'K1',h2,'K2');
		h3 := AddItem('Task 3');
		AddBar(h3,'Task','1/2/2001','1/4/2001','K3',Null);
		AddLink('L2',h3,'K3',h2,'K2');
		SchedulePDM(0,'K1');
	end;
	EndUpdate();
end
1054
How do I arrange the bars based on the links

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Task');
	with Chart do
	begin
		FirstVisibleDate := '1/1/2001';
		PaneWidth[False] := 48;
	end;
	with Items do
	begin
		h1 := AddItem('Task 1');
		AddBar(h1,'Task','1/2/2001','1/4/2001','K1',Null);
		h2 := AddItem('Task 2');
		AddBar(h2,'Task','1/2/2001','1/4/2001','K2',Null);
		AddLink('L1',h1,'K1',h2,'K2');
		h3 := AddItem('Task 3');
		AddBar(h3,'Task','1/2/2001','1/4/2001','K3',Null);
		AddLink('L2',h2,'K2',h3,'K3');
		SchedulePDM(0,'K1');
	end;
	EndUpdate();
end
1053
Is is possible to use HTML tags to display in the filter caption
with G2antt1 do
begin
	BeginUpdate();
	FilterBarPromptVisible := True;
	FilterBarCaption := 'This is a bit of text being displayed in the filter bar.';
	Columns.Add('');
	with Items do
	begin
		AddItem('Item 1');
		AddItem('Item 2');
		AddItem('Item 3');
	end;
	EndUpdate();
end
1052
How can I find the number of items after filtering
with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('');
	with Items do
	begin
		h := AddItem('');
		CellValue[OleVariant(h),OleVariant(0)] := OleVariant(VisibleItemCount);
	end;
	EndUpdate();
end
1051
How can I change the filter caption
with G2antt1 do
begin
	BeginUpdate();
	Chart.PaneWidth[True] := 0;
	ColumnAutoResize := True;
	ContinueColumnScroll := False;
	FocusColumnIndex := 1;
	MarkSearchColumn := False;
	SearchColumnIndex := 1;
	FilterBarPromptVisible := True;
	FilterBarPromptType := Integer(EXG2ANTTLib_TLB.exFilterPromptWords) Or Integer(EXG2ANTTLib_TLB.exFilterPromptContainsAll);
	FilterBarPromptPattern := 'london robert';
	FilterBarCaption := '<r>Found: ... ';
	with Columns do
	begin
		(IUnknown(Add('Name')) as EXG2ANTTLib_TLB.Column).Width := 96;
		(IUnknown(Add('Title')) as EXG2ANTTLib_TLB.Column).Width := 96;
		Add('City');
	end;
	with Items do
	begin
		h0 := AddItem('Nancy Davolio');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Andrew Fuller');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Vice President, Sales';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Tacoma';
		SelectItem[h0] := True;
		h0 := AddItem('Janet Leverling');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Kirkland';
		h0 := AddItem('Margaret Peacock');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Redmond';
		h0 := AddItem('Steven Buchanan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Manager';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Michael Suyama');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Robert King');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Laura Callahan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Inside Sales Coordinator';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Anne Dodsworth');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
	end;
	EndUpdate();
end
1050
While using the filter prompt is it is possible to use wild characters
with G2antt1 do
begin
	BeginUpdate();
	Chart.PaneWidth[True] := 0;
	ColumnAutoResize := True;
	ContinueColumnScroll := False;
	FocusColumnIndex := 1;
	MarkSearchColumn := False;
	SearchColumnIndex := 1;
	FilterBarPromptVisible := True;
	FilterBarPromptType := EXG2ANTTLib_TLB.exFilterPromptPattern;
	FilterBarPromptPattern := 'lon* seat*';
	with Columns do
	begin
		(IUnknown(Add('Name')) as EXG2ANTTLib_TLB.Column).Width := 96;
		(IUnknown(Add('Title')) as EXG2ANTTLib_TLB.Column).Width := 96;
		Add('City');
	end;
	with Items do
	begin
		h0 := AddItem('Nancy Davolio');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Andrew Fuller');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Vice President, Sales';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Tacoma';
		SelectItem[h0] := True;
		h0 := AddItem('Janet Leverling');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Kirkland';
		h0 := AddItem('Margaret Peacock');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Redmond';
		h0 := AddItem('Steven Buchanan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Manager';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Michael Suyama');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Robert King');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Laura Callahan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Inside Sales Coordinator';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Anne Dodsworth');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
	end;
	EndUpdate();
end
1049
How can I list all items that contains any of specified words, not necessary at the beggining
with G2antt1 do
begin
	BeginUpdate();
	Chart.PaneWidth[True] := 0;
	ColumnAutoResize := True;
	ContinueColumnScroll := False;
	FocusColumnIndex := 1;
	MarkSearchColumn := False;
	SearchColumnIndex := 1;
	FilterBarPromptVisible := True;
	FilterBarPromptType := Integer(EXG2ANTTLib_TLB.exFilterPromptStartWords) Or Integer(EXG2ANTTLib_TLB.exFilterPromptContainsAny);
	FilterBarPromptPattern := 'london davolio';
	with Columns do
	begin
		(IUnknown(Add('Name')) as EXG2ANTTLib_TLB.Column).Width := 96;
		(IUnknown(Add('Title')) as EXG2ANTTLib_TLB.Column).Width := 96;
		Add('City');
	end;
	with Items do
	begin
		h0 := AddItem('Nancy Davolio');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Andrew Fuller');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Vice President, Sales';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Tacoma';
		SelectItem[h0] := True;
		h0 := AddItem('Janet Leverling');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Kirkland';
		h0 := AddItem('Margaret Peacock');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Redmond';
		h0 := AddItem('Steven Buchanan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Manager';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Michael Suyama');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Robert King');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Laura Callahan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Inside Sales Coordinator';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Anne Dodsworth');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
	end;
	EndUpdate();
end
1048
How can I list all items that contains any of specified words, not strings
with G2antt1 do
begin
	BeginUpdate();
	ColumnAutoResize := True;
	ContinueColumnScroll := False;
	FocusColumnIndex := 1;
	Chart.PaneWidth[True] := 0;
	MarkSearchColumn := False;
	SearchColumnIndex := 1;
	FilterBarPromptVisible := True;
	FilterBarPromptType := Integer(EXG2ANTTLib_TLB.exFilterPromptWords) Or Integer(EXG2ANTTLib_TLB.exFilterPromptContainsAny);
	FilterBarPromptPattern := 'london nancy';
	with Columns do
	begin
		(IUnknown(Add('Name')) as EXG2ANTTLib_TLB.Column).Width := 96;
		(IUnknown(Add('Title')) as EXG2ANTTLib_TLB.Column).Width := 96;
		Add('City');
	end;
	with Items do
	begin
		h0 := AddItem('Nancy Davolio');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Andrew Fuller');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Vice President, Sales';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Tacoma';
		SelectItem[h0] := True;
		h0 := AddItem('Janet Leverling');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Kirkland';
		h0 := AddItem('Margaret Peacock');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Redmond';
		h0 := AddItem('Steven Buchanan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Manager';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Michael Suyama');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Robert King');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Laura Callahan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Inside Sales Coordinator';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Anne Dodsworth');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
	end;
	EndUpdate();
end
1047
How can I list all items that contains all specified words, not strings
with G2antt1 do
begin
	BeginUpdate();
	Chart.PaneWidth[True] := 0;
	ColumnAutoResize := True;
	ContinueColumnScroll := False;
	FocusColumnIndex := 1;
	MarkSearchColumn := False;
	SearchColumnIndex := 1;
	FilterBarPromptVisible := True;
	FilterBarPromptType := Integer(EXG2ANTTLib_TLB.exFilterPromptWords) Or Integer(EXG2ANTTLib_TLB.exFilterPromptContainsAll);
	FilterBarPromptPattern := 'london robert';
	with Columns do
	begin
		(IUnknown(Add('Name')) as EXG2ANTTLib_TLB.Column).Width := 96;
		(IUnknown(Add('Title')) as EXG2ANTTLib_TLB.Column).Width := 96;
		Add('City');
	end;
	with Items do
	begin
		h0 := AddItem('Nancy Davolio');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Andrew Fuller');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Vice President, Sales';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Tacoma';
		SelectItem[h0] := True;
		h0 := AddItem('Janet Leverling');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Kirkland';
		h0 := AddItem('Margaret Peacock');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Redmond';
		h0 := AddItem('Steven Buchanan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Manager';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Michael Suyama');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Robert King');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Laura Callahan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Inside Sales Coordinator';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Anne Dodsworth');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
	end;
	EndUpdate();
end
1046
I've noticed that the filtering by prompt is not case sensitive, is is possible to make it case sensitive
with G2antt1 do
begin
	BeginUpdate();
	ColumnAutoResize := True;
	ContinueColumnScroll := False;
	FocusColumnIndex := 1;
	MarkSearchColumn := False;
	SearchColumnIndex := 1;
	FilterBarPromptVisible := True;
	FilterBarPromptType := Integer(EXG2ANTTLib_TLB.exFilterPromptCaseSensitive) Or Integer(EXG2ANTTLib_TLB.exFilterPromptContainsAny);
	FilterBarPromptPattern := 'Anne';
	Chart.PaneWidth[True] := 0;
	with Columns do
	begin
		(IUnknown(Add('Name')) as EXG2ANTTLib_TLB.Column).Width := 96;
		(IUnknown(Add('Title')) as EXG2ANTTLib_TLB.Column).Width := 96;
		Add('City');
	end;
	with Items do
	begin
		h0 := AddItem('Nancy Davolio');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Andrew Fuller');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Vice President, Sales';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Tacoma';
		SelectItem[h0] := True;
		h0 := AddItem('Janet Leverling');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Kirkland';
		h0 := AddItem('Margaret Peacock');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Redmond';
		h0 := AddItem('Steven Buchanan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Manager';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Michael Suyama');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Robert King');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Laura Callahan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Inside Sales Coordinator';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Anne Dodsworth');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
	end;
	EndUpdate();
end
1045
Is it possible to list only items that ends with any of specified strings
with G2antt1 do
begin
	BeginUpdate();
	ColumnAutoResize := True;
	ContinueColumnScroll := False;
	FocusColumnIndex := 1;
	MarkSearchColumn := False;
	SearchColumnIndex := 1;
	FilterBarPromptVisible := True;
	FilterBarPromptType := EXG2ANTTLib_TLB.exFilterPromptEndWith;
	FilterBarPromptColumns := '0';
	FilterBarPromptPattern := 'Fuller';
	Chart.PaneWidth[True] := 0;
	with Columns do
	begin
		(IUnknown(Add('Name')) as EXG2ANTTLib_TLB.Column).Width := 96;
		(IUnknown(Add('Title')) as EXG2ANTTLib_TLB.Column).Width := 96;
		Add('City');
	end;
	with Items do
	begin
		h0 := AddItem('Nancy Davolio');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Andrew Fuller');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Vice President, Sales';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Tacoma';
		SelectItem[h0] := True;
		h0 := AddItem('Janet Leverling');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Kirkland';
		h0 := AddItem('Margaret Peacock');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Redmond';
		h0 := AddItem('Steven Buchanan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Manager';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Michael Suyama');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Robert King');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Laura Callahan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Inside Sales Coordinator';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Anne Dodsworth');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
	end;
	EndUpdate();
end
1044
Is it possible to list only items that ends with any of specified strings
with G2antt1 do
begin
	BeginUpdate();
	ColumnAutoResize := True;
	ContinueColumnScroll := False;
	FocusColumnIndex := 1;
	MarkSearchColumn := False;
	SearchColumnIndex := 1;
	FilterBarPromptVisible := True;
	FilterBarPromptType := EXG2ANTTLib_TLB.exFilterPromptEndWith;
	FilterBarPromptColumns := '0';
	FilterBarPromptPattern := 'Fuller';
	Chart.PaneWidth[True] := 0;
	with Columns do
	begin
		(IUnknown(Add('Name')) as EXG2ANTTLib_TLB.Column).Width := 96;
		(IUnknown(Add('Title')) as EXG2ANTTLib_TLB.Column).Width := 96;
		Add('City');
	end;
	with Items do
	begin
		h0 := AddItem('Nancy Davolio');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Andrew Fuller');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Vice President, Sales';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Tacoma';
		SelectItem[h0] := True;
		h0 := AddItem('Janet Leverling');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Kirkland';
		h0 := AddItem('Margaret Peacock');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Redmond';
		h0 := AddItem('Steven Buchanan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Manager';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Michael Suyama');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Robert King');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Laura Callahan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Inside Sales Coordinator';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Anne Dodsworth');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
	end;
	EndUpdate();
end
1043
Is it possible to list only items that starts with any of specified strings
with G2antt1 do
begin
	BeginUpdate();
	ColumnAutoResize := True;
	ContinueColumnScroll := False;
	FocusColumnIndex := 1;
	MarkSearchColumn := False;
	SearchColumnIndex := 1;
	FilterBarPromptVisible := True;
	FilterBarPromptType := EXG2ANTTLib_TLB.exFilterPromptStartWith;
	FilterBarPromptColumns := '0';
	FilterBarPromptPattern := 'An M';
	Chart.PaneWidth[True] := 0;
	with Columns do
	begin
		(IUnknown(Add('Name')) as EXG2ANTTLib_TLB.Column).Width := 96;
		(IUnknown(Add('Title')) as EXG2ANTTLib_TLB.Column).Width := 96;
		Add('City');
	end;
	with Items do
	begin
		h0 := AddItem('Nancy Davolio');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Andrew Fuller');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Vice President, Sales';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Tacoma';
		SelectItem[h0] := True;
		h0 := AddItem('Janet Leverling');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Kirkland';
		h0 := AddItem('Margaret Peacock');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Redmond';
		h0 := AddItem('Steven Buchanan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Manager';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Michael Suyama');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Robert King');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Laura Callahan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Inside Sales Coordinator';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Anne Dodsworth');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
	end;
	EndUpdate();
end
1042
Is it possible to list only items that starts with specified string
with G2antt1 do
begin
	BeginUpdate();
	ColumnAutoResize := True;
	ContinueColumnScroll := False;
	FocusColumnIndex := 1;
	MarkSearchColumn := False;
	SearchColumnIndex := 1;
	FilterBarPromptVisible := True;
	FilterBarPromptType := EXG2ANTTLib_TLB.exFilterPromptStartWith;
	FilterBarPromptColumns := '0';
	FilterBarPromptPattern := 'A';
	Chart.PaneWidth[True] := 0;
	with Columns do
	begin
		(IUnknown(Add('Name')) as EXG2ANTTLib_TLB.Column).Width := 96;
		(IUnknown(Add('Title')) as EXG2ANTTLib_TLB.Column).Width := 96;
		Add('City');
	end;
	with Items do
	begin
		h0 := AddItem('Nancy Davolio');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Andrew Fuller');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Vice President, Sales';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Tacoma';
		SelectItem[h0] := True;
		h0 := AddItem('Janet Leverling');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Kirkland';
		h0 := AddItem('Margaret Peacock');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Redmond';
		h0 := AddItem('Steven Buchanan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Manager';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Michael Suyama');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Robert King');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Laura Callahan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Inside Sales Coordinator';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Anne Dodsworth');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
	end;
	EndUpdate();
end
1041
How can I specify that the list should include any of the seqeunces in the pattern
with G2antt1 do
begin
	BeginUpdate();
	ColumnAutoResize := True;
	ContinueColumnScroll := False;
	FocusColumnIndex := 1;
	MarkSearchColumn := False;
	SearchColumnIndex := 1;
	FilterBarPromptVisible := True;
	FilterBarPromptType := EXG2ANTTLib_TLB.exFilterPromptContainsAny;
	FilterBarPromptPattern := 'london seattle';
	Chart.PaneWidth[True] := 0;
	with Columns do
	begin
		(IUnknown(Add('Name')) as EXG2ANTTLib_TLB.Column).Width := 96;
		(IUnknown(Add('Title')) as EXG2ANTTLib_TLB.Column).Width := 96;
		Add('City');
	end;
	with Items do
	begin
		h0 := AddItem('Nancy Davolio');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Andrew Fuller');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Vice President, Sales';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Tacoma';
		SelectItem[h0] := True;
		h0 := AddItem('Janet Leverling');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Kirkland';
		h0 := AddItem('Margaret Peacock');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Redmond';
		h0 := AddItem('Steven Buchanan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Manager';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Michael Suyama');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Robert King');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Laura Callahan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Inside Sales Coordinator';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Anne Dodsworth');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
	end;
	EndUpdate();
end
1040
How can I specify that all sequences in the filter pattern must be included in the list
with G2antt1 do
begin
	BeginUpdate();
	Chart.PaneWidth[True] := 0;
	ColumnAutoResize := True;
	ContinueColumnScroll := False;
	FocusColumnIndex := 1;
	MarkSearchColumn := False;
	SearchColumnIndex := 1;
	FilterBarPromptVisible := True;
	FilterBarPromptType := EXG2ANTTLib_TLB.exFilterPromptContainsAll;
	FilterBarPromptPattern := 'london manager';
	with Columns do
	begin
		(IUnknown(Add('Name')) as EXG2ANTTLib_TLB.Column).Width := 96;
		(IUnknown(Add('Title')) as EXG2ANTTLib_TLB.Column).Width := 96;
		Add('City');
	end;
	with Items do
	begin
		h0 := AddItem('Nancy Davolio');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Andrew Fuller');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Vice President, Sales';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Tacoma';
		SelectItem[h0] := True;
		h0 := AddItem('Janet Leverling');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Kirkland';
		h0 := AddItem('Margaret Peacock');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Redmond';
		h0 := AddItem('Steven Buchanan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Manager';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Michael Suyama');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Robert King');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Laura Callahan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Inside Sales Coordinator';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Anne Dodsworth');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
	end;
	EndUpdate();
end
1039
How do I change at runtime the filter prompt
with G2antt1 do
begin
	BeginUpdate();
	ColumnAutoResize := True;
	ContinueColumnScroll := False;
	FocusColumnIndex := 1;
	Chart.PaneWidth[True] := 0;
	MarkSearchColumn := False;
	SearchColumnIndex := 1;
	FilterBarPromptVisible := True;
	FilterBarPromptPattern := 'london manager';
	with Columns do
	begin
		(IUnknown(Add('Name')) as EXG2ANTTLib_TLB.Column).Width := 96;
		(IUnknown(Add('Title')) as EXG2ANTTLib_TLB.Column).Width := 96;
		Add('City');
	end;
	with Items do
	begin
		h0 := AddItem('Nancy Davolio');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Andrew Fuller');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Vice President, Sales';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Tacoma';
		SelectItem[h0] := True;
		h0 := AddItem('Janet Leverling');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Kirkland';
		h0 := AddItem('Margaret Peacock');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Redmond';
		h0 := AddItem('Steven Buchanan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Manager';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Michael Suyama');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Robert King');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Laura Callahan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Inside Sales Coordinator';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Anne Dodsworth');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
	end;
	EndUpdate();
end
1038
How do I specify to filter only a single column when using the filter prompt
with G2antt1 do
begin
	BeginUpdate();
	ColumnAutoResize := True;
	ContinueColumnScroll := False;
	FocusColumnIndex := 1;
	Chart.PaneWidth[True] := 0;
	MarkSearchColumn := False;
	SearchColumnIndex := 1;
	FilterBarPromptVisible := True;
	FilterBarPromptColumns := '2,3';
	FilterBarPromptPattern := 'london';
	with Columns do
	begin
		(IUnknown(Add('Name')) as EXG2ANTTLib_TLB.Column).Width := 96;
		(IUnknown(Add('Title')) as EXG2ANTTLib_TLB.Column).Width := 96;
		Add('City');
	end;
	with Items do
	begin
		h0 := AddItem('Nancy Davolio');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Andrew Fuller');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Vice President, Sales';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Tacoma';
		SelectItem[h0] := True;
		h0 := AddItem('Janet Leverling');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Kirkland';
		h0 := AddItem('Margaret Peacock');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Redmond';
		h0 := AddItem('Steven Buchanan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Manager';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Michael Suyama');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Robert King');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Laura Callahan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Inside Sales Coordinator';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Anne Dodsworth');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
	end;
	EndUpdate();
end
1037
How do I change the prompt or the caption being displayed in the filter bar
with G2antt1 do
begin
	BeginUpdate();
	Chart.PaneWidth[True] := 0;
	ColumnAutoResize := True;
	ContinueColumnScroll := False;
	FocusColumnIndex := 1;
	MarkSearchColumn := False;
	SearchColumnIndex := 1;
	FilterBarPromptVisible := True;
	FilterBarPrompt := 'changed';
	with Columns do
	begin
		(IUnknown(Add('Name')) as EXG2ANTTLib_TLB.Column).Width := 96;
		(IUnknown(Add('Title')) as EXG2ANTTLib_TLB.Column).Width := 96;
		Add('City');
	end;
	EndUpdate();
end
1036
How do I enable the filter prompt feature

with G2antt1 do
begin
	BeginUpdate();
	Chart.PaneWidth[True] := 0;
	ColumnAutoResize := True;
	ContinueColumnScroll := False;
	FocusColumnIndex := 1;
	MarkSearchColumn := False;
	SearchColumnIndex := 1;
	FilterBarPromptVisible := True;
	with Columns do
	begin
		(IUnknown(Add('Name')) as EXG2ANTTLib_TLB.Column).Width := 96;
		(IUnknown(Add('Title')) as EXG2ANTTLib_TLB.Column).Width := 96;
		Add('City');
	end;
	with Items do
	begin
		h0 := AddItem('Nancy Davolio');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Andrew Fuller');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Vice President, Sales';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Tacoma';
		SelectItem[h0] := True;
		h0 := AddItem('Janet Leverling');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Kirkland';
		h0 := AddItem('Margaret Peacock');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Redmond';
		h0 := AddItem('Steven Buchanan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Manager';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Michael Suyama');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Robert King');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Laura Callahan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Inside Sales Coordinator';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Anne Dodsworth');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
	end;
	EndUpdate();
end
1035
How can I unselect all bars
with G2antt1 do
begin
	Columns.Add('Task');
	Chart.FirstVisibleDate := '1/1/2001';
	with Items do
	begin
		AddBar(AddItem('Task 1'),'Task','1/2/2001','1/4/2001','K1',Null);
		AddBar(AddItem('Task 2'),'Task','1/2/2001','1/4/2001','K2',Null);
		AddBar(AddItem('Task 3'),'Task','1/2/2001','1/4/2001','K3',Null);
		AddBar(AddItem('Task 4'),'Task','1/2/2001','1/4/2001','K4',Null);
		ItemBar[0,'<*>',EXG2ANTTLib_TLB.exBarSelected] := OleVariant(True);
		ItemBar[0,'<*>',EXG2ANTTLib_TLB.exBarSelected] := OleVariant(False);
	end;
end
1034
Can I select bars using a pattern using wild characters as *,

with G2antt1 do
begin
	Columns.Add('Task');
	with Chart do
	begin
		FirstVisibleDate := '1/1/2001';
		PaneWidth[False] := 48;
		ShowNonworkingDates := False;
	end;
	with Items do
	begin
		h := AddItem('Task 1');
		AddBar(h,'Task','1/2/2001','1/4/2001','K1K','K1K');
		AddBar(h,'Task','1/5/2001','1/7/2001','K2M','K2M');
		AddBar(h,'Task','1/9/2001','1/11/2001','K3K','K3K');
		AddBar(AddItem('Task 2'),'Task','1/2/2001','1/4/2001','Q','Q');
		AddBar(AddItem('Task 4'),'Task','1/2/2001','1/4/2001','M','M');
		ItemBar[0,'<K*K>',EXG2ANTTLib_TLB.exBarSelected] := OleVariant(True);
	end;
end
1033
How can I select all bars in the item with a specified key

with G2antt1 do
begin
	Columns.Add('Task');
	Chart.FirstVisibleDate := '1/1/2001';
	Chart.PaneWidth[False] := 48;
	with Items do
	begin
		h := AddItem('Task 1');
		AddBar(h,'Task','1/2/2001','1/4/2001','K1','K1');
		AddBar(h,'Task','1/5/2001','1/7/2001','K2','K2');
		AddBar(h,'Task','1/9/2001','1/11/2001','P','P');
		AddBar(AddItem('Task 2'),'Task','1/2/2001','1/4/2001','Q','Q');
		AddBar(AddItem('Task 4'),'Task','1/2/2001','1/4/2001','M','M');
		ItemBar[h,'<K*>',EXG2ANTTLib_TLB.exBarSelected] := OleVariant(True);
	end;
end
1032
How can I select all bars in the specified item

with G2antt1 do
begin
	Columns.Add('Task');
	Chart.FirstVisibleDate := '1/1/2001';
	Chart.PaneWidth[False] := 48;
	with Items do
	begin
		h := AddItem('Task 1');
		AddBar(h,'Task','1/2/2001','1/4/2001','K1','K1');
		AddBar(h,'Task','1/5/2001','1/7/2001','K2','K2');
		AddBar(h,'Task','1/9/2001','1/11/2001','P','P');
		AddBar(AddItem('Task 2'),'Task','1/2/2001','1/4/2001','Q','Q');
		AddBar(AddItem('Task 4'),'Task','1/2/2001','1/4/2001','M','M');
		ItemBar[h,'<*>',EXG2ANTTLib_TLB.exBarSelected] := OleVariant(True);
	end;
end
1031
How can I select all bars with a specified key

with G2antt1 do
begin
	Columns.Add('Task');
	Chart.FirstVisibleDate := '1/1/2001';
	Chart.PaneWidth[False] := 48;
	with Items do
	begin
		h := AddItem('Task 1');
		AddBar(h,'Task','1/2/2001','1/4/2001','K1','K1');
		AddBar(h,'Task','1/5/2001','1/7/2001','K2','K2');
		AddBar(h,'Task','1/8/2001','1/10/2001','P','P');
		AddBar(AddItem('Task 2'),'Task','1/2/2001','1/4/2001','Q','Q');
		AddBar(AddItem('Task 4'),'Task','1/2/2001','1/4/2001','P','P');
		ItemBar[0,'<P>',EXG2ANTTLib_TLB.exBarSelected] := OleVariant(True);
	end;
end
1030
How can I select all bars

with G2antt1 do
begin
	Columns.Add('Task');
	Chart.FirstVisibleDate := '1/1/2001';
	Chart.PaneWidth[False] := 48;
	with Items do
	begin
		h := AddItem('Task 1');
		AddBar(h,'Task','1/2/2001','1/4/2001','K1','K1');
		AddBar(h,'Task','1/5/2001','1/7/2001','K2','K2');
		AddBar(h,'Task','1/8/2001','1/10/2001','P','P');
		AddBar(AddItem('Task 2'),'Task','1/2/2001','1/4/2001','Q','Q');
		AddBar(AddItem('Task 4'),'Task','1/2/2001','1/4/2001','M','M');
		ItemBar[0,'<*>',EXG2ANTTLib_TLB.exBarSelected] := OleVariant(True);
	end;
end
1029
I have the AllowInsideZoom property on True, but I am still not able to use the inside zoom feature

with G2antt1 do
begin
	BeginUpdate();
	with Chart do
	begin
		FirstVisibleDate := '1/1/2001';
		PaneWidth[False] := 0;
		LevelCount := 3;
		FirstWeekDay := EXG2ANTTLib_TLB.exMonday;
		Level[0].Label := 'Week: <%ww%>';
		with Level[1] do
		begin
			Label := '<%dddd%>';
			Alignment := EXG2ANTTLib_TLB.CenterAlignment;
		end;
		Level[2].Label := OleVariant(65536);
		NonworkingHours := 16773375;
		ShowNonworkingUnits := False;
		ShowNonworkingDates := False;
		ShowNonworkingHours := False;
		AllowInsideZoom := True;
		with DefaultInsideZoomFormat do
		begin
			InsideUnit := EXG2ANTTLib_TLB.exMinute;
			InsideLabel := '<b><%nn%></b>';
		end;
		InsideZooms.Add('1/1/2001 10:00:00 AM');
	end;
	EndUpdate();
end
1028
Is there any option to find out if two bars intersects

with G2antt1 do
begin
	BeginUpdate();
	DefaultItemHeight := 22;
	Columns.Add('InterectBars');
	with Chart do
	begin
		PaneWidth[False] := 48;
		FirstVisibleDate := '1/1/2001';
		Bars.Item['Task'].OverlaidType := EXG2ANTTLib_TLB.exOverlaidBarsOffset;
	end;
	with Items do
	begin
		h := AddItem('');
		AddBar(h,'Task','1/2/2001','1/4/2001','A','A');
		AddBar(h,'Task','1/3/2001','1/5/2001','B','B');
		CellValue[OleVariant(h),OleVariant(0)] := OleVariant(IntersectBars[h,'A',h,'B']);
		h := AddItem('');
		AddBar(h,'Task','1/6/2001','1/9/2001','A','A');
		AddBar(h,'Task','1/10/2001','1/13/2001','B','B');
		CellValue[OleVariant(h),OleVariant(0)] := OleVariant(IntersectBars[h,'A',h,'B']);
		h := AddItem('');
		AddBar(h,'Task','1/6/2001','1/9/2001','B','B');
		AddBar(h,'Task','1/10/2001','1/13/2001','A','A');
		CellValue[OleVariant(h),OleVariant(0)] := OleVariant(IntersectBars[h,'A',h,'B']);
	end;
	EndUpdate();
end
1027
How can I find if a specified hour is a working or non-working hour, when using the ItemNonWorkingUnits

with G2antt1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Hour')) as EXG2ANTTLib_TLB.Column).FormatColumn := 'hour(value)';
	(IUnknown(Columns.Add('Type')) as EXG2ANTTLib_TLB.Column).FormatColumn := 'value != 0 ? ''non-working'' : ''working''';
	with Chart do
	begin
		FirstVisibleDate := '1/1/2001';
		PaneWidth[False] := 164;
		FirstWeekDay := EXG2ANTTLib_TLB.exMonday;
		LevelCount := 2;
		UnitScale := EXG2ANTTLib_TLB.exHour;
		NonworkingHours := 1;
	end;
	with Items do
	begin
		h := AddItem('1/1/2001');
		w := G2antt1.Chart.IsNonworkingDate[G2antt1.ItemsCellValue[OleVariant(h),OleVariant(0)],Null];
		CellValue[OleVariant(h),OleVariant(1)] := OleVariant(w);
		h := AddItem('1/1/2001');
		ItemNonworkingUnits[h,OleVariant(False)] := 'hour(value) >0 ';
		w := G2antt1.Chart.IsNonworkingDate[G2antt1.ItemsCellValue[OleVariant(h),OleVariant(0)],OleVariant(h)];
		CellValue[OleVariant(h),OleVariant(1)] := OleVariant(w);
	end;
	EndUpdate();
end
1026
How can I find if a specified hour is a working or non-working hour
with G2antt1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Hour')) as EXG2ANTTLib_TLB.Column).FormatColumn := 'hour(value)';
	(IUnknown(Columns.Add('Type')) as EXG2ANTTLib_TLB.Column).FormatColumn := 'value != 0 ? ''non-working'' : ''working''';
	with Chart do
	begin
		FirstVisibleDate := '1/1/2001';
		PaneWidth[False] := 164;
		FirstWeekDay := EXG2ANTTLib_TLB.exMonday;
		LevelCount := 2;
		UnitScale := EXG2ANTTLib_TLB.exHour;
		NonworkingHours := 1;
	end;
	with Items do
	begin
		h := AddItem('1/1/2001');
		w := G2antt1.Chart.IsNonworkingDate[G2antt1.ItemsCellValue[OleVariant(h),OleVariant(0)],Null];
		CellValue[OleVariant(h),OleVariant(1)] := OleVariant(w);
		h := AddItem('1/1/2001 1:00:00 AM');
		w := G2antt1.Chart.IsNonworkingDate[G2antt1.ItemsCellValue[OleVariant(h),OleVariant(0)],Null];
		CellValue[OleVariant(h),OleVariant(1)] := OleVariant(w);
	end;
	EndUpdate();
end
1025
How can I find if a specified date-time is a working or non-working unit, when using the ItemNonWorkingUnits
with G2antt1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Date')) as EXG2ANTTLib_TLB.Column).Width := 48;
	(IUnknown(Columns.Add('Type')) as EXG2ANTTLib_TLB.Column).FormatColumn := 'value != 0 ? ''non-working'' : ''working''';
	with Chart do
	begin
		FirstVisibleDate := '1/1/2001';
		PaneWidth[False] := 128;
		FirstWeekDay := EXG2ANTTLib_TLB.exMonday;
		LevelCount := 2;
	end;
	with Items do
	begin
		h := AddItem('1/1/2001');
		w := G2antt1.Chart.IsNonworkingDate[G2antt1.ItemsCellValue[OleVariant(h),OleVariant(0)],Null];
		CellValue[OleVariant(h),OleVariant(1)] := OleVariant(w);
		h := AddItem('1/1/2001');
		ItemNonworkingUnits[h,OleVariant(False)] := 'weekday(value) in (1)';
		w := G2antt1.Chart.IsNonworkingDate[G2antt1.ItemsCellValue[OleVariant(h),OleVariant(0)],OleVariant(h)];
		CellValue[OleVariant(h),OleVariant(1)] := OleVariant(w);
	end;
	EndUpdate();
end
1024
How can I find if a specified date-time is a working or non-working unit
with G2antt1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Date')) as EXG2ANTTLib_TLB.Column).Width := 48;
	(IUnknown(Columns.Add('Type')) as EXG2ANTTLib_TLB.Column).FormatColumn := 'value != 0 ? ''non-working'' : ''working''';
	with Chart do
	begin
		FirstVisibleDate := '1/1/2001';
		PaneWidth[False] := 128;
		FirstWeekDay := EXG2ANTTLib_TLB.exMonday;
		LevelCount := 2;
	end;
	with Items do
	begin
		h := AddItem('1/1/2001');
		w := G2antt1.Chart.IsNonworkingDate[G2antt1.ItemsCellValue[OleVariant(h),OleVariant(0)],Null];
		CellValue[OleVariant(h),OleVariant(1)] := OleVariant(w);
		h := AddItem('1/6/2001');
		w := G2antt1.Chart.IsNonworkingDate[G2antt1.ItemsCellValue[OleVariant(h),OleVariant(0)],Null];
		CellValue[OleVariant(h),OleVariant(1)] := OleVariant(w);
	end;
	EndUpdate();
end
1023
When zooming to days, the non-working part of the chart occupies some not useful space. Can I reduce it

with G2antt1 do
begin
	BeginUpdate();
	with Chart do
	begin
		PaneWidth[False] := 48;
		FirstVisibleDate := '1/3/2002';
		Bars.Add('Task:Split').Shortcut := 'Task';
		LevelCount := 2;
		DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
		FirstWeekDay := EXG2ANTTLib_TLB.exMonday;
		Level[0].Label := 'Week: <%ww%>';
		with Level[1] do
		begin
			Label := '<%d%>/<%m2%>';
			FormatLabel := 'weekday(dvalue) in (0,6) ? ''end'' : value';
		end;
		UnitWidth := 32;
		UnitWidthNonworking := -32;
	end;
	Columns.Add('Task');
	with Items do
	begin
		h := AddItem('Default');
		AddBar(h,'Task','1/4/2002','1/8/2002','A',Null);
	end;
	EndUpdate();
end
1022
My chart display only working hours, but when zooming to days, each day shows the non-working part of the day too, even if I use the ShowNonWorkingUnits property on False. What am I doing wrong

with G2antt1 do
begin
	BeginUpdate();
	with Chart do
	begin
		PaneWidth[False] := 48;
		FirstVisibleDate := '1/3/2002 10:00:00 AM';
		Bars.Add('Task:Split').Shortcut := 'Task';
		LevelCount := 2;
		DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
		FirstWeekDay := EXG2ANTTLib_TLB.exMonday;
		Level[0].Label := '<%ww%>';
		with Level[1] do
		begin
			Label := '<%dd%>';
			Unit := EXG2ANTTLib_TLB.exHour;
			Count := 24;
		end;
		NonworkingHours := 16761855;
		ShowNonworkingUnits := False;
		ShowNonworkingHours := False;
		UnitWidth := 32;
	end;
	Columns.Add('Task');
	with Items do
	begin
		h := AddItem('Default');
		AddBar(h,'Task','1/4/2002 10:00:00 AM','1/8/2002 2:00:00 AM','A',Null);
		ItemBar[h,'A',EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True);
	end;
	EndUpdate();
end
1021
I need to display only working hours and weekend part, but for some items I need another non-working part. Is this possible

with G2antt1 do
begin
	BeginUpdate();
	with Chart do
	begin
		PaneWidth[False] := 48;
		FirstVisibleDate := '1/3/2002';
		Bars.Add('Task:Split').Shortcut := 'Task';
		LevelCount := 2;
		DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
		with Level[0] do
		begin
			Label := '<%ddd%>';
			FormatLabel := 'weekday(dvalue) in (0,6) ? '''' : value';
		end;
		with Level[1] do
		begin
			Label := OleVariant(65536);
			FormatLabel := 'weekday(dvalue) in (0,6) ? ''end'' : value';
		end;
		NonworkingHours := 16761855;
		ShowNonworkingUnits := False;
		ShowNonworkingHours := False;
		UnitWidthNonworking := -24;
	end;
	Columns.Add('Task');
	with Items do
	begin
		h := AddItem('Default');
		AddBar(h,'Task','1/4/2002','1/8/2002','A',Null);
		ItemBar[h,'A',EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True);
		h := AddItem('Friday');
		AddBar(h,'Task','1/3/2002','1/7/2002 12:00:00 PM','A',Null);
		ItemBar[h,'A',EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True);
		ItemNonworkingUnits[h,OleVariant(False)] := 'weekday(value) in (0,6,5) or hour(value)<10 or hour(value)>=14';
		h := AddItem('Till 13');
		AddBar(h,'Task','1/4/2002','1/7/2002 12:00:00 PM','A',Null);
		ItemBar[h,'A',EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True);
		ItemNonworkingUnits[h,OleVariant(False)] := 'weekday(value) in (0,6) or hour(value)<10 or hour(value)>=13';
	end;
	EndUpdate();
end
1020
I can display the working hours, but how can I hide the weekend or non-working part of the chart when using the ShowNonWorkingUnits property on False

with G2antt1 do
begin
	with Chart do
	begin
		PaneWidth[False] := 0;
		FirstVisibleDate := '1/3/2002';
		LevelCount := 2;
		Level[0].Label := '<%ddd%>';
		Level[1].Label := OleVariant(65536);
		NonworkingHours := 16761855;
		ShowNonworkingUnits := False;
		ShowNonworkingDates := False;
		ShowNonworkingHours := False;
	end;
end
1019
How can I display only the working hours but uses less space for non-working part, such as weekend

with G2antt1 do
begin
	with Chart do
	begin
		PaneWidth[False] := 0;
		FirstVisibleDate := '1/3/2002';
		LevelCount := 2;
		with Level[0] do
		begin
			Label := '<%ddd%>';
			FormatLabel := 'weekday(dvalue) in (0,6) ? '''' : value';
		end;
		with Level[1] do
		begin
			Label := OleVariant(65536);
			FormatLabel := 'weekday(dvalue) in (0,6) ? ''end'' : value';
		end;
		NonworkingHours := 16761855;
		ShowNonworkingUnits := False;
		ShowNonworkingHours := False;
		UnitWidthNonworking := -24;
	end;
end
1018
How can I display only the working hours but uses less space for non-working part, such as weekend

with G2antt1 do
begin
	with Chart do
	begin
		PaneWidth[False] := 0;
		FirstVisibleDate := '1/3/2002';
		LevelCount := 2;
		Level[0].Label := '<%ddd%>';
		with Level[1] do
		begin
			Label := OleVariant(65536);
			FormatLabel := 'weekday(dvalue) in (0,6) ? '''' : value';
		end;
		NonworkingHours := 16761855;
		ShowNonworkingUnits := False;
		ShowNonworkingHours := False;
		UnitWidthNonworking := 8;
	end;
end
1017
How can I display only the working hours

with G2antt1 do
begin
	with Chart do
	begin
		PaneWidth[False] := 0;
		FirstVisibleDate := '1/3/2002';
		LevelCount := 2;
		Level[0].Label := '<%ddd%>';
		Level[1].Label := OleVariant(65536);
		NonworkingHours := 16761855;
		ShowNonworkingUnits := False;
		ShowNonworkingHours := False;
	end;
end
1016
How can I specify non-working hours

with G2antt1 do
begin
	with Chart do
	begin
		PaneWidth[False] := 0;
		FirstVisibleDate := '1/3/2002';
		LevelCount := 2;
		Level[0].Label := '<%ddd%>';
		Level[1].Label := OleVariant(65536);
		NonworkingHours := 16761855;
	end;
end
1015
How can I display the working hours for a bar

with G2antt1 do
begin
	BeginUpdate();
	with Columns do
	begin
		Add('Tasks');
		with (IUnknown(Add('Working')) as EXG2ANTTLib_TLB.Column) do
		begin
			Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(258);
			Def[EXG2ANTTLib_TLB.exCellValueToItemBarKey] := 'A';
			FormatColumn := '(0:=round(value*24)) != 0 ? =:0 : ''''';
		end;
	end;
	Items.AllowCellValueToItemBar := True;
	with Chart do
	begin
		PaneWidth[False] := 96;
		Bars.Add('Task:Split').Shortcut := 'Task';
		FirstVisibleDate := '1/3/2002';
		LevelCount := 2;
		Level[0].Label := '<%ddd%>';
		Level[1].Label := '<%hh%>';
		NonworkingHours := 16761855;
		ShowNonworkingUnits := False;
		ShowNonworkingHours := False;
	end;
	with Items do
	begin
		h := AddItem('Task 1');
		AddBar(h,'Task','1/4/2002','1/8/2002','A',Null);
		ItemBar[h,'A',EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True);
		h := AddItem('Task 2');
		AddBar(h,'Task','1/3/2002','1/4/2002','A',Null);
		ItemBar[h,'A',EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True);
	end;
	EndUpdate();
end
1014
Is it possible to show only working hours, showing a small part for the weekend days, and in the same time showing the bars by splitting the non-working part and keeping the working units for the bar while moving

with G2antt1 do
begin
	BeginUpdate();
	with Chart do
	begin
		Bars.Add('Task:Split').Shortcut := 'Task';
		FirstVisibleDate := '1/3/2002';
		DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
		GridLineStyle := EXG2ANTTLib_TLB.exGridLinesGeometric;
		PaneWidth[False] := 0;
		LevelCount := 2;
		with Level[0] do
		begin
			Label := '<%ddd%>';
			Alignment := EXG2ANTTLib_TLB.CenterAlignment;
			FormatLabel := 'weekday(dvalue) in (0,6) ? `` : value';
		end;
		with Level[1] do
		begin
			Label := OleVariant(65536);
			DrawGridLines := True;
			FormatLabel := 'weekday(dvalue) in (0,6) ? `<font ;6>weekend</font>` : value';
		end;
		NonworkingHours := 16761855;
		ShowNonworkingUnits := False;
		ShowNonworkingDates := True;
		ShowNonworkingHours := False;
		UnitWidthNonworking := -40;
	end;
	Columns.Add('Task');
	with Items do
	begin
		h := AddItem('Task 1');
		AddBar(h,'Task','1/4/2002','1/8/2002','A',Null);
		ItemBar[h,'A',EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True);
	end;
	EndUpdate();
end
1013
How can I show bars with different solid color but black border

with G2antt1 do
begin
	BeginUpdate();
	VisualAppearance.Add(1,'C:\Program Files\Exontrol\ExG2antt.NET\sample\EBN\blackbox.ebn');
	Columns.Add('Task');
	Chart.FirstVisibleDate := '1/1/2001';
	with Chart.Bars.Item['Task'] do
	begin
		Color := $1000000;
		Height := 15;
	end;
	Chart.PaneWidth[False] := 0;
	with Items do
	begin
		h := AddItem('Task');
		AddBar(h,'Task','1/2/2001','1/5/2001','',Null);
		ItemBar[h,'',EXG2ANTTLib_TLB.exBarColor] := OleVariant(65535);
		h := AddItem('Task');
		AddBar(h,'Task','1/2/2001','1/5/2001','',Null);
		ItemBar[h,'',EXG2ANTTLib_TLB.exBarColor] := OleVariant(255);
	end;
	EndUpdate();
end
1012
I want to display a vertical line for each week, while I still need a vertical separator for each day. Is this possible

with G2antt1 do
begin
	GridLineColor := RGB(240,240,240);
	with Chart do
	begin
		PaneWidth[False] := 0;
		DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
		NonworkingDays := 0;
		LevelCount := 2;
		with Level[0] do
		begin
			DrawGridLines := True;
			GridLineColor := $0;
		end;
		with Level[1] do
		begin
			DrawGridLines := True;
			GridLineColor := $f0f0f0;
		end;
	end;
end
1011
How can I display the levels as year, day, AM and PM for each day
with G2antt1 do
begin
	with Chart do
	begin
		PaneWidth[False] := 0;
		FirstVisibleDate := '12/1/2009';
		UnitWidth := 22;
		LevelCount := 3;
		Level[0].Label := '<%yyyy%>';
		Level[1].Label := '<%mm%>/<%dd%>';
		with Level[2] do
		begin
			Label := '<%AM/PM%>';
			Count := 12;
		end;
	end;
end
1010
How can I change the pattern for a specified time unit, in the chart area

with G2antt1 do
begin
	BeginUpdate();
	with Chart do
	begin
		PaneWidth[False] := 0;
		LevelCount := 2;
		FirstVisibleDate := '1/1/2008';
		AllowInsideZoom := True;
		AllowResizeInsideZoom := False;
		InsideZoomOnDblClick := False;
		with DefaultInsideZoomFormat do
		begin
			PatternChart := EXG2ANTTLib_TLB.exPatternBDiagonal;
			PatternColorChart := $ff;
		end;
		with InsideZooms do
		begin
			SplitBaseLevel := False;
			DefaultWidth := 18;
			Add('1/4/2008').AllowInsideFormat := False;
		end;
	end;
	EndUpdate();
end
1009
How can I hide the non-working hours, but still display the non-working days with even less space

with G2antt1 do
begin
	BeginUpdate();
	with Chart do
	begin
		FirstVisibleDate := '11/19/2009';
		DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
		GridLineStyle := EXG2ANTTLib_TLB.exGridLinesGeometric;
		PaneWidth[False] := 0;
		LevelCount := 2;
		with Level[0] do
		begin
			Label := '<%dddd%>';
			Alignment := EXG2ANTTLib_TLB.CenterAlignment;
			FormatLabel := 'weekday(dvalue) in (0,6) ? `` : value';
		end;
		with Level[1] do
		begin
			Label := OleVariant(65536);
			DrawGridLines := True;
			FormatLabel := 'weekday(dvalue) in (0,6) ? `<font ;6>weekend</font>` : value';
		end;
		NonworkingHours := 16761855;
		ShowNonworkingUnits := False;
		ShowNonworkingDates := True;
		ShowNonworkingHours := False;
		UnitWidth := 32;
		UnitWidthNonworking := -32;
	end;
	EndUpdate();
end
1008
How can I hide the non-working hours, but still display the non-working days with less space

with G2antt1 do
begin
	BeginUpdate();
	with Chart do
	begin
		FirstVisibleDate := '11/19/2009';
		DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
		GridLineStyle := EXG2ANTTLib_TLB.exGridLinesGeometric;
		PaneWidth[False] := 0;
		LevelCount := 2;
		with Level[0] do
		begin
			Label := '<%dddd%>';
			Alignment := EXG2ANTTLib_TLB.CenterAlignment;
			FormatLabel := 'weekday(dvalue) in (0,6) ? `<font ;6>` + value + `</font>` : value';
		end;
		with Level[1] do
		begin
			Label := OleVariant(65536);
			DrawGridLines := True;
			FormatLabel := 'weekday(dvalue) in (0,6) ? `<font ;6>` + value + `</font>` : value';
		end;
		NonworkingHours := 16761855;
		ShowNonworkingUnits := False;
		ShowNonworkingDates := True;
		ShowNonworkingHours := False;
		UnitWidth := 32;
		UnitWidthNonworking := 12;
	end;
	EndUpdate();
end
1007
How can I hide the non-working hours, but still display the non-working days

with G2antt1 do
begin
	BeginUpdate();
	with Chart do
	begin
		FirstVisibleDate := '11/19/2009';
		DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
		GridLineStyle := EXG2ANTTLib_TLB.exGridLinesGeometric;
		PaneWidth[False] := 0;
		LevelCount := 2;
		with Level[0] do
		begin
			Label := '<%dddd%>';
			Alignment := EXG2ANTTLib_TLB.CenterAlignment;
		end;
		with Level[1] do
		begin
			Label := OleVariant(65536);
			DrawGridLines := True;
		end;
		NonworkingHours := 16761855;
		ShowNonworkingUnits := False;
		ShowNonworkingDates := True;
		ShowNonworkingHours := False;
	end;
	EndUpdate();
end
1006
How can I hide the non-working hours, and the non-working days

with G2antt1 do
begin
	BeginUpdate();
	with Chart do
	begin
		FirstVisibleDate := '11/19/2009';
		DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
		GridLineStyle := EXG2ANTTLib_TLB.exGridLinesGeometric;
		PaneWidth[False] := 0;
		LevelCount := 2;
		with Level[0] do
		begin
			Label := '<%dddd%>';
			Alignment := EXG2ANTTLib_TLB.CenterAlignment;
		end;
		with Level[1] do
		begin
			Label := OleVariant(65536);
			DrawGridLines := True;
		end;
		NonworkingHours := 16761855;
		ShowNonworkingUnits := False;
		ShowNonworkingDates := False;
		ShowNonworkingHours := False;
	end;
	EndUpdate();
end
1005
Can I highlights the non-working hours while my chart shows days

with G2antt1 do
begin
	with Chart do
	begin
		PaneWidth[False] := 0;
		FirstVisibleDate := '1/1/2001';
		UnitWidth := 48;
		LevelCount := 2;
		with Level[1] do
		begin
			Label := '<%d%>';
			Unit := EXG2ANTTLib_TLB.exHour;
			Count := 24;
		end;
		NonworkingHours := 127;
	end;
end
1004
How can I reduce the space/area being occupied by non-working units days or hours (method 2)

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Task');
	with Chart do
	begin
		FirstWeekDay := EXG2ANTTLib_TLB.exMonday;
		LevelCount := 2;
		FirstVisibleDate := '1/1/2001';
		PaneWidth[False] := 64;
		UnitWidthNonworking := -8;
		Level[1].FormatLabel := 'weekday(dvalue) in (0,6) ? ''.'' : value';
	end;
	with Items do
	begin
		h := AddItem('Task 1');
		AddBar(h,'Task','1/2/2001','1/4/2001','K1',Null);
		AddBar(h,'Task','1/5/2001','1/6/2001','K2',Null);
		AddBar(AddItem('Task 2'),'Task','1/2/2001','1/4/2001','K3',Null);
		AddBar(AddItem('Task 4'),'Task','1/2/2001','1/4/2001','K4',Null);
		ItemBar[h,'<*>',EXG2ANTTLib_TLB.exBarColor] := OleVariant(255);
	end;
	EndUpdate();
end
1003
How can I reduce the space/area being occupied by non-working units days or hours (method 1)

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Task');
	with Chart do
	begin
		FirstWeekDay := EXG2ANTTLib_TLB.exMonday;
		LevelCount := 2;
		FirstVisibleDate := '1/1/2001';
		PaneWidth[False] := 64;
		UnitWidthNonworking := 4;
		Level[1].FormatLabel := 'weekday(dvalue) in (0,6) ? '''' : value';
	end;
	with Items do
	begin
		h := AddItem('Task 1');
		AddBar(h,'Task','1/2/2001','1/4/2001','K1',Null);
		AddBar(h,'Task','1/5/2001','1/6/2001','K2',Null);
		AddBar(AddItem('Task 2'),'Task','1/2/2001','1/4/2001','K3',Null);
		AddBar(AddItem('Task 4'),'Task','1/2/2001','1/4/2001','K4',Null);
		ItemBar[h,'<*>',EXG2ANTTLib_TLB.exBarColor] := OleVariant(255);
	end;
	EndUpdate();
end
1002
How can I hide the non-working units

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Task');
	with Chart do
	begin
		FirstWeekDay := EXG2ANTTLib_TLB.exMonday;
		LevelCount := 2;
		FirstVisibleDate := '1/1/2001';
		PaneWidth[False] := 64;
		ShowNonworkingUnits := False;
		ShowNonworkingDates := False;
		DrawGridLines := EXG2ANTTLib_TLB.exVLines;
		Level[0].DrawGridLines := True;
		GridLineStyle := EXG2ANTTLib_TLB.exGridLinesGeometric;
	end;
	with Items do
	begin
		h := AddItem('Task 1');
		AddBar(h,'Task','1/2/2001','1/4/2001','K1',Null);
		AddBar(h,'Task','1/5/2001','1/6/2001','K2',Null);
		AddBar(AddItem('Task 2'),'Task','1/2/2001','1/4/2001','K3',Null);
		AddBar(AddItem('Task 4'),'Task','1/2/2001','1/4/2001','K4',Null);
		ItemBar[h,'<*>',EXG2ANTTLib_TLB.exBarColor] := OleVariant(255);
	end;
	EndUpdate();
end
1001
How can I determine that a certain bar is the topmost (zorder)

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Task');
	with Chart do
	begin
		PaneWidth[False] := 48;
		FirstVisibleDate := '12/27/2000';
		Bars.Item['Task'].Pattern := EXG2ANTTLib_TLB.exPatternSolid;
	end;
	with Items do
	begin
		h := AddItem('B in front');
		AddBar(h,'Task','1/2/2001','1/6/2001','A',Null);
		AddBar(h,'Task','1/3/2001','1/5/2001','B','<fgcolor=FF0000>B</fgcolor>');
		ItemBar[h,'B',EXG2ANTTLib_TLB.exBarOffset] := OleVariant(-2);
		ItemBar[h,'B',EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18);
		ItemBar[h,'B',EXG2ANTTLib_TLB.exBarColor] := OleVariant(255);
		h := AddItem('A in back');
		AddBar(h,'Task','1/2/2001','1/6/2001','A','<fgcolor=FF0000>A</fgcolor>');
		ItemBar[h,'A',EXG2ANTTLib_TLB.exBarOffset] := OleVariant(-2);
		ItemBar[h,'A',EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18);
		ItemBar[h,'A',EXG2ANTTLib_TLB.exBarColor] := OleVariant(255);
		AddBar(h,'Task','1/3/2001','1/5/2001','B',Null);
	end;
	EndUpdate();
end